                                       ɱصA


                                                         by ҡ׷ɱ


                                                     
Ʒƴ 

ģ
"Jug01"̳
"BBox02"С
"BBox01"Сľ
"BBBox01"ľ
"Item01"()
"Item0101"()
"Item0102"(С)
"Item0103"()
"Item02"
"Item03"ͭ
"Item04"ս
"Item05"è
"Item07"ˮ
"Item08"Ԫ
"Item09"ʯ(ӹ)
"Item0901"ʯ(ӹ)
"Item0902"ʯ(ӷ)
"Item0903"ʯ()
"sn01st01"鶴ʯ01 
"sn01st02"鶴ʯ02
"knife02"ػ긫ͷ
"IPItem01"ػ
"sn02st01"ػ긡̨
"button01"һ쿪
"sn03Door"һ
"IPItem02"һ
"sn03st01"һʯ01 
"sn03st02"һʯ02
"sn03t02"һǽľ 
"sn03t01"һǽľ
"Chair01"ѩ
"desk01"ѩ
"Pdoor02"ѩդ
"Sn05door"Ǵ
"knife01"֮
"sn07t03"֮
"sn07eye"֮۾
"floor01"֮ذ01
"floor02"֮ذ02
"sn07gd02"֮
"sn08B01"ģ 
"sn08B02"Ӱ
"sn08B03"δ֪Ʒ
"sn09f01"ذ
"sn11pd01"צ() 
"sn11pd02"צ() 
"sn11pd03"צ(Ѻ) 
"sn11pd04"צ() 
"sn11pd05"צ(ɿ) 
"Stove01"״
"bridge01"𻪳ǵ01 
"bridge02"𻪳ǵ02
"Desk02"
"Chair02"
"sn21Box" 
"sn21sn01"Сѩ 
"item1701"ѩͷ
"item1702"ѩ
"sn21st01"ʥ
"start001"ʥҹ01
"start002"ʥҹ02
"start003"ʥҹ03
"Item10"ʥҹ
"Item11"ʥҹ
"Item12"ʥҹΧ
"Item13"ʥҹ
"Item13L"ʥҹ
"Item13R"ʥҹ
"Item14"ʥҹЬ
"Item14L01"ʥҹЬ01
"Item14L02"ʥҹЬ02
"Item14R01"ʥҹЬ01
"Item14R02"ʥҹЬ02
"Item15"ʥҹñ
"item16"ʥҹֻ
"tp001"˷
"Pd02Box"δ֪Ʒ
"sn07gd02"  
"sn07eye"۾ 
"damage30 "Һ() 

ģ
"W3_0"ɱ01
"W3_1"ɱ02
"W3_2"ɱ03
"W3_3"ɱ04
"W3_4"ɱ05
"W3_5"ɱ06
"W6_0"01
"W6_1"02
"W6_2"03
"W6_3"04
"W6_4"05
"W2_0"ǹ01
"W2_1"ǹ02
"W2_2"ǹ03
"W2_3"ǹ04
"W2_4"ǹ05
"W8_0r"˫01
"W8_1r"˫02
"W8_2r"˫03
"W8_3r"˫04
"W8_4r"˫05
"W1_0"ذ01
"W1_1"ذ02
"W1_2"ذ03
"W1_3"ذ04
"W1_4"ذ05
"W0_0"01
"W0_1"02
"W0_2"03
"W0_3"04
"W0_4"05
"W7_0"ǹ01
"W7_1"ǹ02
"W7_2"ǹ03
"W7_3"ǹ04
"W7_4"ǹ05
"W5_0"01
"W5_1"02
"W5_2"03
"W5_3"04
"W5_4"05
"W4_0"01
"W4_1"02
"W4_2"03
"W4_3"04
"W4_4"05
"W9_0a"Ǭǹ01
"W9_1a"Ǭǹ02
"W9_2a"Ǭǹ03
"W9_3a"Ǭǹ04
"W9_0a"Ǭյ01
"W9_1a"Ǭյ02
"W9_2a"Ǭյ03
"W9_3a"Ǭյ04
"W9_0l"Ǭ01
"W9_1l"Ǭ02
"W9_2l"Ǭ03
"W9_3l"Ǭ04
"W9_0r"Ǭ01
"W9_1r"Ǭ02
"W9_2r"Ǭ03
"W9_3r"Ǭ04
"W10_0l"ָ01
"W10_1l"ָ02
"W10_2l"ָ03
"W10_3l"ָ04
"W10_0r"ָ01
"W10_1r"ָ02
"W10_2r"ָ03
"W10_3r"ָ04
"W11_0"̵01
"W11_1"̵02
"W11_2"̵03
"W11_3"̵04


 ƷЧ



XSnowMan [ѩ]
XStar []
PowUPMax []
WeaponUP [Զʱ]
RepairBL [ǵ]
RepairRE []
RobotHit 
vipblue 
vipred 
GoalBlue []
GoalRed []
BridgBRK []
NinPoSFK [ɱ]
FireBRK []
GiMaBRK [͸ۺɫ]
Flag [бĻ]
DFCircle [ɫ]
NinPoINV [Ƭ]
XBell[״]
XSword[]
XLance[߲ʶ] 
XGun[߲ʶǶ]
XDigger[]
BridgBRK[] 
XUFO[߲ʵ]
XStinger[߲ʴ]
XSnowBal[ѩ]
XHamme[߲]
XBlade[ʥ]
Item12[ʥ]
Item15[ʥñ]
Item14[ʥЬ]
Item13[ʥ2]
Item17[ѩ]
WonHIT[һҳ]
BoxHIT [һҳ]
WonBRK[һɫĻҳ]
StoneHIT[һҳ2]
BoxBRK[ǻҳ]
StoneBRK[ܶĻҳ]
GiMaHIT.ef[ܶĻҳ2]
FireHIT[ɫҳӺɫ]
BridgBRK. [ҳش]
WeaponUP[һ]
Vipred[ӳ]
Vipblue[Ƕӳ]
getitem[Ѫ]
Track[־]
Lock[־]
SpdUPSlf[ɫ]
Spdup[ɫ]
PowUPSlf. [ɫ]
Powup[ɫ]
Item17[ѩ]
ReBorn[ͬĹ]
Maxlifup[΢]
POT_Red.[δ֪ɫ]
POT_Free[δ֪ɫ2]
POT_Blue[δ֪ɫ]
GunHit[ǹ]
FrontHIT[ɫ͸С2]
DefUPSlf[]
defup[2]
AttrSLOW[жɫ]
AttrPOIS[жɫ()]

                 (עҲʽPOS)

                                      һDES


 1  ͼϼһЩƷ

SceneObjects棺ڳ趨֮ǰĹмݡ

DummeyObjects棺Ϊ˵ͼĿɱ䶯ģж٣㡢áõ
ӵһ趨βɱģ͹ٵ档

Object D_wp01 
{
  Position: 22.258  9.928  -185.546 ߵ  Ʒ[X,Y,H]
  Quaternion: -1.000 0.000 0.000 0.000 һתİڷŽǶ
  TextureAnimation: 0 0.000 0.000
  Custom: Ʒ
  {
    model="tp001" Ʒģָ  
    name = "hell" Ʒ
    ticket=123Ʒֵģʽ
    effect="RepairBL"ƷЧ
  }
}

 2  ԭǹ̬

ƷΪD_BBoxD_BBBoxD_ChairD_DeskD_RJugPSTҲʵ
ԼƷᱻã෴˵ķô򶼲
ԼøһDefĵҲƷHP


D_BBoxƿ÷ΧΪD_BBox01D_BBox65
D_BBBoxƿ÷ΧΪD_BBBox01D_BBBox60
D_ChairD_DeskD_RJugƶֻ120

HP   HPӵѪ
// pclHP
int g_iBoxMaxHP = 100;	
// jclHP
int g_iBBoxMaxHP = 200;

 3 Ʒ

Ӻ
Object D_BBox01
{
  Position: -498.314 -615.863 -11.853
  Quaternion: -0.986 0.000 0.000 -0.165
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    model="BBox01"
    ticket=1,4,5
  }
}
Ʒĺ
Object D_itBBox01
{
  Position: -498.411 -615.813 -3.517
  Quaternion: -0.986 0.000 0.000 -0.165
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    model="Item03"
    ticket=1,4,5
  }
}
ƷĲƸĳɺһǰ"it"
أֻǿԴƷ[]

 4  

Ӻ
Object D_BBox01
{
  Position: 22.056 -2.170 339.782
  Quaternion: -1.000 0.000 0.000 0.009
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    model="BBox02"
    ticket=1,4,5
  }
}
ĺ
Object D_wpBBox01
{
  Position: 21.983 -2.090 348.118
  Quaternion: -1.000 0.000 0.000 0.009
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    model="W11_0"
    ticket=1,4,5
  }
}
ƷĲƸĳɺһǰ"wp"


 5  Ʒ

name = "user01" "user16"Ϊģʽ16 
       "teamA01" "teamA16"ΪǶ16
       "teamB01" "teamB16"Ϊ16 
       "safe" Ϊģʽĳ 
       "safeA"ΪģʽǶӵĳ 
       "safeB"Ϊģʽӵĳ 
       "damage"Ϊ˺ 

 6  Ʒֵģʽ

ticket=1  ģʽ
ticket=2  ģʽ
ticket=3  ģʽ
ticket=4  ɱģʽ
ticket=5  ģʽ
ticket=6  ģʽ

 7  ƷЧ

"Flag"     
"Vipblue"  
"Vipred"   

"POT_Blue" 
"POT_Red"  
"POT_Free" ׹

"RepairBL" 
"RepairRE" 

"ReBorn"   ʥ

"PowUPMax" 
"SpdUPSlf" 
"PowUPSlf."
(עҲʽPOS)

 8  ޸ĵͼĳ

Object D_user01
{
  Position: -355.484 24.859 28.559
  Quaternion: -0.719 0.000 0.000 -0.695
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    name="user01"
  }
} 
-355.484 24.859 28.559ĳԼҪ
ڰuser02user16ĳȫɾ[鿴Ʒ]
òҪɾ 16ȫĻ ֳҵ⣩

 9  ķ֮


.ķΪ

ɾDESеЩ

Object Box18
{
  Position: 53.496 -15.311 -451.483
  Quaternion: -1.000 0.000 0.000 0.000
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    ObjectType = camerabox
  }
}

Χɿ -+2500

ȶΧ +1950

 10  ԭظ

D_user01D_user16ȫɾ
ʵģʽԭظ

D_teamA01D_teamA08ȫɾ
ʵǶԭظ

D_teamB01D_teamB08ȫɾ
ʵֺԭظ

(ҵʱõ ƽûòҪ Ȼ˲ܵ㣬)


                              PST
 1 

PSTһЩ
1.ֹͣԶת
SetSceneItem("D_wp01", "name", "machine");

2.ʵ廯
SetSceneItem("D_wp01", "attribute", "collision", 1);
Ʒʵ,1ʵ,0

3.ָ˺
SetSceneItem(name, "attribute", "damage", 1);
Ʒ˺1ǻɣ0ǲ
SetSceneItem(name, "attribute", "damagevalue", 9999999);
Ʒ˺ֵ

4.ƷĶ
SetSceneItem("D_wp01", "pose", 0, 0);

SetSceneItem("D_wp01", "pose", 1, 0); "pose", 1, 0˼Ʒһ.ĳ"pose", 1, 1ͱƷ.


5.Ʒʾ
SetSceneItem("D_wp01", "attribute", "active", 0);
Ʒأ1ʾ,0

6.Чʾ
CreateEffect("D_wp01", "XStar");


 2 .ʵ廯ĺ

Scene_OnLoad()
{
	string name;
	int i;
		
	//xz
	for ( i=1; i<=999; i++ )
	{
		MakeString(name, "D_xz", i);
		SetSceneItem(name, "name", "machine");
		SetSceneItem(name, "attribute", "collision", 1);
	}
}
xzͷƷֹͣתʵ廯Ҳء˺

 3  ߹1ʾ2

D_xz01ƷʾD_xz02
D_xz01_OnPickUp()
{
	NetEvent(1);
	
	SetSceneItem("D_xz02", "attribute", "active", 1);

	NetEvent(0);
}

D_xz01ƷʾD_xz02
D_xz01_OnAttack(int id, int character, int damage)
{
        NetEvent(1);

        SetSceneItem("D_xz02", "attribute", "active", 1);

        NetEvent(0);
}

ƷִԵдԶ ƣ

D_xz01_OnAttack(int id, int character, int damage) 
{

	int i;
	string name;
	SetSceneItem("D_wk28", "attribute", "active", 0);
	SetSceneItem("D_tpEC01", "attribute", "active", 0);
	SetSceneItem("D_tpEC02", "attribute", "active", 1);
	SetSceneItem("D_tpEC03", "attribute", "active", 1);
	SetSceneItem("D_tpEC04", "attribute", "active", 0);
	SetSceneItem("D_tpEC05", "attribute", "active", 0);
	SetSceneItem("D_tpEC06", "attribute", "active", 0);
	SetSceneItem("D_tpEC07", "attribute", "active", 0);
	SetSceneItem("D_tpEC08", "attribute", "active", 0);
        SetSceneItem("D_wk28", "attribute", "damage", 1);
	SetSceneItem("D_wk28", "attribute", "damagevalue", 3000000);
        SetSceneItem("D_wl01", "attribute", "damage", 1);
	SetSceneItem("D_wl01", "attribute", "damagevalue", 3000000);
        SetSceneItem("D_wl02", "attribute", "damage", 1);
	SetSceneItem("D_wl02", "attribute", "damagevalue", 3000000);
        SetSceneItem("D_wl03", "attribute", "damage", 1);
	SetSceneItem("D_wl03", "attribute", "damagevalue", 3000000);
	SetSceneItem("D_wl01", "pose", 1, 1);
	SetSceneItem("D_wl02", "pose", 1, 1);
	SetSceneItem("D_wl03", "pose", 1, 1);

	for ( i=1; i<=474; i++ )
	{
		MakeString(name, "D_dm", i);
                SetSceneItem(name, "attribute", "active", 1);
	}
	for ( i=1; i<=4; i++ )
	{
		MakeString(name, "D_wk", i);
                SetSceneItem(name, "attribute", "damage", 1);
	        SetSceneItem(name, "attribute", "damagevalue", 3000000);
     	}
	for (i=1; i<=3; i++ )
	{
		MakeString(name, "D_Bc", i);
                SetSceneItem(name, "attribute", "active", 1);
	}
	for (i=1; i<=103; i++ )
	{
		MakeString(name, "D_wl", i);
                SetSceneItem(name, "attribute", "active", 1);
	}
 
{ժ ˵ ͼ} 




D_xz01ƷʾD_xz01֮POS
D_xz01_OnAttack(int id, int character, int damage)
{
        SetSceneItem("D_xz02", "attribute", "active", 1);

	CreateEffect("D_xz02", "FuTi-UP", 1);
	SetSceneItem("D_xz02", "pose", 1, 1);
	SetSceneItem("D_xz02", "frame", 0);
}

D_xz01ƷʾΪD_ItemƷ
D_xz01_OnAttack(int id, int character, int damage)
{
       	int i;
	string name;
	for (i=1; i<=103; i++ )
	{
		MakeString(name, "D_Item", i);
		SetSceneItem(name, "attribute", "active", 1);
		SetSceneItem(name, "attribute", "interactive", 1);
	}
}
Ʒʾ ĳЩЧ
D_ta29_OnAttack(int id, int characterid, int damage)Ʒta29
{
	int state = GetSceneItem(id, "state");
	if ( state!=3 )
	{
		return 0;
	}
	Output("rotate.....");
	
	NetEvent(1);
	CreateEffect(id, "XStar"); Ʒta29ЧXStar
	CreateEffect("D_ta30", "Pos474");
	CreateEffect("D_ta31", "Pos474");
	CreateEffect("D_ta32", "Pos474");
	CreateEffect("D_ta33", "Pos474");
	CreateEffect("D_ta34", "Pos474");
	CreateEffect("D_ta35", "Pos474");
	SetSceneItem(id, "pose", 1, 0);
}   
 4  ͵

DES 
Object D_tpEC01 
{ 
  Position: -220.954 -715.281 -170.280 
  Quaternion: -1.000 0.000 0.000 0.000 
  TextureAnimation: 0 0.000 0.000 
  Custom: 
  { 
    model="tp001" 
    effect="RepairRE" [DESƷЧ]
  } 
} 
Object D_tpED01 
{ 
  Position: 10.000 10.000 10.000 
  Quaternion: -1.000 0.000 0.000 0.000 
  TextureAnimation: 0 0.000 0.000 
  Custom: 
  { 
    model="tp001" 
  } 
} 
(崫 model="tp001 ĳ Ҫ͵Ʒ

⴫ͷΧ  effect="RepairRE" [DESƷЧ] ĳƷ

ƷСǴ͵ķΧ)

һĴ͵㣬ڶǴ͵ĵص㣬Чeffect="RepairRE"
ECEDֵһҲ˵ڶ붼EC02 ED02Դơ
߱tp001 

ȻPSTļ 
#include "..\PScriptLib\jug.pst" 
int DeathMatch = 1; 
int TeamDeathMatch = 5; 
int GameMod; 
int EventEnter = 200; 
int EventExit = 201; 
int EventDeath = 202; 
int g_CharacterArena[99]; 
int g_ArenaCharacters[99]; 
int g_TeamAArenaCharacters[16]; 
int g_TeamBArenaCharacters[16]; 
֮  InitJugs(g_iNumJugs); 
	GameMod = GameCallBack("mod", 0);
	int i;
	string itemname;
	for (i=0; i<16; i=i+1)
	{
		g_CharacterArena[i] = -1;
		g_ArenaCharacters[i] = 0;
		g_TeamAArenaCharacters[i] = 0;
		g_TeamBArenaCharacters[i] = 0;
		
		MakeString(itemname, "D_tpEC", i+1);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
		SetSceneItem(itemname, "attribute", "interactive", 1);

		MakeString(itemname, "D_tpEC", i+17);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
		SetSceneItem(itemname, "attribute", "interactive", 1);
	}

        for (i=0; i<8; i=i+1)
	{
		MakeString(itemname, "D_tpAC", i+1);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);

		MakeString(itemname, "D_tpAC", i+9);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
		
		MakeString(itemname, "D_tpBC", i+1);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);

		MakeString(itemname, "D_tpBC", i+9);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
	}
}

Scene_OnCharacterEvent(int id, int event)
{
	int i;
	int arena;
	int team;
	Output("Character:", id, "event:", event);
	
	if ( event==EventExit || event==EventDeath )
	{
		if ( GameMod==DeathMatch )
		{
			arena = g_CharacterArena[id];
			if ( arena!=-1 )
			{
				g_ArenaCharacters[arena] = g_ArenaCharacters[arena];
			}
			g_CharacterArena[id] = -1;
		}
		if ( GameMod==TeamDeathMatch )
		{
			arena = g_CharacterArena[id];
			team = GetTeam(id);
			if ( arena!=-1 )
			{
				if ( team==1 )
				{
					g_TeamAArenaCharacters[arena] = g_TeamAArenaCharacters[arena] - 1;
				}
				if ( team==2 )
				{
					g_TeamBArenaCharacters[arena] = g_TeamBArenaCharacters[arena] - 1;
				}
			}
			g_CharacterArena[id] = -1;
		}
	}		
}

TransferToArena(int characterid, int tpid)
{
	string arenaname;
	int arena = tpid/2;
	Output("arena characters", g_ArenaCharacters[arena]);
	if ( g_ArenaCharacters[arena]<99)
	{
		g_ArenaCharacters[arena]=g_ArenaCharacters[arena];
		g_CharacterArena[characterid] = arena;
		MakeString(arenaname, "D_tpED", tpid+1);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "to", tpid);
	}
}
TransferFromArena(int characterid, int tpid)
{
	string arenaname;
	int arena = tpid/2;

	if ( g_ArenaCharacters[arena]<99)
	{
		g_ArenaCharacters[arena]=g_ArenaCharacters[arena];
		g_CharacterArena[characterid] = -1;
		MakeString(arenaname, "D_tpED", tpid+17);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "from", tpid);
	}
}

֮
D_tpEC01_OnTouch(int id, int characterid) 
{ 
    Output("EC01 Touched"); 
    TransferToArena(characterid, 0); 
} 
һ͵01characteridΪ0ڶ02characteridΪ1Դơ

 5  ͵(ҲֻзԼ)

DES 
Object D_tpEC01 
{ 
  Position: -220.954 -715.281 -170.280 
  Quaternion: -1.000 0.000 0.000 0.000 
  TextureAnimation: 0 0.000 0.000 
  Custom: 
  { 
    model="tp001" 
    effect="RepairRE"[DESƷЧ]
  } 
} 
Object D_tpED11
{ 
  Position: 10.000 10.000 10.000 
  Quaternion: -1.000 0.000 0.000 0.000 
  TextureAnimation: 0 0.000 0.000 
  Custom: 
  { 
    model="tp001" 
  } 
} 
һĴ͵㣬ڶǴ͵ĵص
ECֵEDһҲ˵һEC01 ED11ڶEC02 ED12Դơ
߱tp001 

ȻPSTļ 
      InitJugs(g_iNumJugs); 
	int i;
	string name;
  
	for(i=01; i<=10; i++)
	{
		MakeString(name, "D_tpEC", i);		
		SetSceneItem(name, "name", "machine");
	}  
	
}

TransferToArena(int characterid, int tpid)
{
	string arenaname;
	
	if(characterid!=1)
	{
		return 0;
	}
	
	MakeString(arenaname, "D_tpED", tpid);
	Misc("transfer", characterid, arenaname);
	Output("transfer", characterid, "to", tpid);
}

֮
D_tpEC01_OnTouch(int id, int characterid)
{
	Output("EC01 Touched");
	TransferToArena(characterid, 11);
}
һ͵01characteridΪ11ڶ02characteridΪ12Դ

ɾ
	if(characterid!=1)
	{
		return 0;
	}
⴫

 6  ͣһο ڶα ֮ſɴͣ
des
Object D_tpEC01 
{ 
  Position: 13 9 -24
  Quaternion: -1.000 0.000 0.000 0.000 
  TextureAnimation: 0 0.000 0.000 
  Custom: 
  { 
    model="tp001" 
    effect="sn09f01" 
  } 
} 
Object D_tpED01 
{ 
  Position: 303 309 -24
  Quaternion: -1.000 0.000 0.000 0.000 
  TextureAnimation: 0 0.000 0.000 
  Custom: 
  { 
    model="tp001" 
  } 
}
pst
#include "..\PScriptLib\jug.pst"
int DeathMatch = 1;
int TeamDeathMatch = 5;
int GameMod;

int EventEnter = 200;
int EventExit = 201;
int EventDeath = 202;

int g_CharacterArena[17];
int g_ArenaCharacters[16];
int g_TeamAArenaCharacters[16];
int g_TeamBArenaCharacters[16];


Scene_OnInit()
Scene_OnInit()
{
	InitBoxes(g_iNumBoxes);
	InitBBoxes(g_iNumBBoxes);
	InitChairs(g_iNumChairs);
	InitDeskes(g_iNumDeskes);
	InitJugs(g_iNumJugs);

	GameMod = GameCallBack("mod", 0);
	int i;
	string itemname;
	for (i=0; i<16; i=i+1)
	{
		g_CharacterArena[i] = -1;
		g_ArenaCharacters[i] = 0;
		g_TeamAArenaCharacters[i] = 0;
		g_TeamBArenaCharacters[i] = 0;
		
		MakeString(itemname, "D_tpEC", i+1);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
		SetSceneItem(itemname, "attribute", "interactive", 1);

		MakeString(itemname, "D_tpEC", i+17);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
		SetSceneItem(itemname, "attribute", "interactive", 1);
	}
	
	for (i=0; i<8; i=i+1)
	{
		MakeString(itemname, "D_tpAC", i+1);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);

		MakeString(itemname, "D_tpAC", i+9);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
		
		MakeString(itemname, "D_tpBC", i+1);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);

		MakeString(itemname, "D_tpBC", i+9);
		SetSceneItem(itemname, "name", "machine");
		SetSceneItem(itemname, "attribute", "collision", 0);
	}
}

Scene_OnCharacterEvent(int id, int event)
{
	int i;
	int arena;
	int team;
	Output("Character:", id, "event:", event);
	
	if ( event==EventExit || event==EventDeath )
	{
		if ( GameMod==DeathMatch )
		{
			arena = g_CharacterArena[id];
			if ( arena!=-1 )
			{
				g_ArenaCharacters[arena] = g_ArenaCharacters[arena] - 1;
			}
			g_CharacterArena[id] = -1;
		}
		if ( GameMod==TeamDeathMatch )
		{
			arena = g_CharacterArena[id];
			team = GetTeam(id);
			if ( arena!=-1 )
			{
				if ( team==1 )
				{
					g_TeamAArenaCharacters[arena] = g_TeamAArenaCharacters[arena] - 1;
				}
				if ( team==2 )
				{
					g_TeamBArenaCharacters[arena] = g_TeamBArenaCharacters[arena] - 1;
				}
			}
			g_CharacterArena[id] = -1;
		}
	}		
}

TransferToArena(int characterid, int tpid)
{
	string arenaname;
	int arena = tpid/2;
	Output("arena characters", g_ArenaCharacters[arena]);
	if ( g_ArenaCharacters[arena]<2 && g_CharacterArena[characterid] != arena )
	{
		g_ArenaCharacters[arena]=g_ArenaCharacters[arena]+1;
		g_CharacterArena[characterid] = arena;
		MakeString(arenaname, "D_tpED", tpid+1);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "to", tpid);
	}
}

TransferFromArena(int characterid, int tpid)
{
	string arenaname;
	int arena = tpid/2;

	if ( g_ArenaCharacters[arena]==1 && g_CharacterArena[characterid] == arena)
	{
		g_ArenaCharacters[arena]=g_ArenaCharacters[arena]-1;
		g_CharacterArena[characterid] = -1;
		MakeString(arenaname, "D_tpED", tpid+17);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "from", tpid);
	}
}

TeamATransferToArena(int characterid, int arena)
{
	string arenaname;
	int team;
	team = GetTeam(characterid);
	if ( team==1 && g_TeamAArenaCharacters[arena]==0 )
	{
		g_TeamAArenaCharacters[arena] = 1;
		g_CharacterArena[characterid] = arena;
		MakeString(arenaname, "D_tpAD", arena+1);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "to", arena);
	}
}

TeamATransferFromArena(int characterid, int arena)
{
	string arenaname;
	int team;
	team = GetTeam(characterid);
	if ( team==1 && g_TeamAArenaCharacters[arena]==1 && g_TeamBArenaCharacters[arena]==0 )
	{
		g_TeamAArenaCharacters[arena] = 0;
		g_CharacterArena[characterid] = -1;
		MakeString(arenaname, "D_tpAD", arena+9);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "from", arena);
	}
}

TeamBTransferToArena(int characterid, int arena)
{
	string arenaname;
	int team;
	team = GetTeam(characterid);
	if ( team==2 && g_TeamBArenaCharacters[arena]==0 )
	{
		g_TeamBArenaCharacters[arena] = 1;
		g_CharacterArena[characterid] = arena;
		MakeString(arenaname, "D_tpBD", arena+1);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "to", arena);
	}
}

TeamBTransferFromArena(int characterid, int arena)
{
	string arenaname;
	int team;
	team = GetTeam(characterid);
	if ( team==2 && g_TeamBArenaCharacters[arena]==1 && g_TeamAArenaCharacters[arena]==0 )
	{
		g_TeamBArenaCharacters[arena] = 0;
		g_CharacterArena[characterid] = -1;
		MakeString(arenaname, "D_tpBD", arena+9);
		Misc("transfer", characterid, arenaname);
		Output("transfer", characterid, "from", arena);
	}
}

D_tpEC01_OnTouch(int id, int characterid)
{
	Output("EC01 Touched");
	TransferToArena(characterid, 0);
}
һ  EC01 ED01 ڶEC02 ED02 һ

һ͵01characteridΪ11ڶ02characteridΪ12Դ

⴫  ˷ͣ

һ洫  D_tpEC01 640 1560 10  ͵D_tpED01 500 1320 10
ڶ  D_tpEC02 639 802 50   ͵D_tpED02 791 1031 10
洫D_tpEC17 640 1400 10 ͵ D_tpED17  580 1560 50
ڶ D_tpEC18  640 942 10 ͵ D_tpEC18 712 802 50

֮
D_tpEC01_OnTouch(int id, int characterid) 
{ 
    Output("EC01 Touched"); 
    TransferToArena(characterid, 0); 
} 


ڲֿд 

 һEC01characteridΪ0
ڲ ӦEC17  characteridΪ0
ֻҪڲֵ17

һҪӦ

һ͵01characteridΪ0ڶ02characteridΪ1Դơ

 7  ͼѩ
Scene_OnLoad()мº()
Scene_OnLoad() 
{
SetScene("snow", 1);
SetScene("snowdensity", 2000);
SetScene("winddir", 50, 0, 0);
SetScene("snowspeed", 40, 120);
SetScene("snowsize", 8, 8);
} 

Scene_OnLoad() 
{ 
SetScene("snow", 1);            ѩأ0Ϊѩ1Ϊѩ 
SetScene("snowdensity", 2000);  õͼͬʱֵѩ 
SetScene("winddir", 50, 0, 0);  ѩתò 
SetScene("snowspeed", 40, 120);  ѩƮٶȣ 
SetScene("snowsize", 8, 8);      ѩС 
} 
ѩСֵѩXY.
XֵYֵ󣬸õͼѩӰ.
YֵXֵ󣬸õͼѩӰͻ׶.
óͳһֵ
趨ѩµĶּֿ죬CPUĸɱ

ͼ
Scene_OnLoad()мº()
Scene_OnLoad() 
{
SetScene("snow", 1);
SetScene("snowdensity", 6000);
SetScene("winddir", 50, 0, 0);
SetScene("snowspeed", 400, 1200);
SetScene("snowsize", 1, 30);
} 
Ϸ ս ˳ս ڽս־ܿ

 8  ʱ

DES 
Object D_dmEC01 
{
  Position: 13 -150 -24
  Quaternion: 1.000 0.000 0.000 0.000
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    model="sn03Door"
  }
}
Object D_jgED01 
{
  Position: 13 150 -24
  Quaternion: 1.000 0.000 0.000 0.000
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    model="button01"
  }
}
һһĴţڶһĻء

ȻPSTļ
#include "..\PScriptLib\jug.pst" 
int g_idm01OpenTime;
int g_iDoorWaitTime = 7000;
dm01Ǵ
ʱ 7000 7

ȻڽƷֹͣתʵ廯

InitJugs(g_iNumJugs); 
SetSceneItem("D_dm01", "pose", 0, 0);
SetSceneItem("D_jg01", "pose", 0, 0);

֮
D_jg01_OnAttack(int id, int character, int damage)
{ 
	int pose = GetSceneItem("D_dm01", "pose");
	if ( pose!=0 )
	{
		return 0;
	}
	g_idm01OpenTime = Misc("gettime");
	NetEvent(1);
	SetSceneItem("D_dm01", "pose", 1, 0);
	SetSceneItem(id, "pose", 1, 0);
	NetEvent(0);
}
D_dm01_OnIdle(int id)
{
	int pose = GetSceneItem(id, "pose");
	if ( pose==0 )
	{
		return 0;
	}
	int state = GetSceneItem(id, "state");
	if ( pose==1 && state==3 )
	{
		int diff = Misc("gettime") - g_idm01OpenTime;
		if ( diff > g_iDoorWaitTime )
		{
			Output("Close Door");
			NetEvent(1);
			SetSceneItem(id, "pose", 2, 0);
			NetEvent(0);
		}
		return 1;
	}
	if ( pose==2 && state==3 )
	{
		NetEvent(1);
		SetSceneItem(id, "pose", 0, 0);
		NetEvent(0);
		return 1;
	}
}
D_jg01
Ŷ
Ȼʱ ǵȴ7 Ŷ

         Ʒʱ.

Լдʱ.忴ػ꣺

	CreateEffect("D_xz01", "FuTi-UP", 1);
	SetSceneItem("D_xz01", "pose", 1, 1);
	SetSceneItem("D_xz01", "frame", 180);

	SetSceneItem("D_xz02", "pose", 1, 1);
	SetSceneItem("D_xz02", "frame", 160);

	SetSceneItem("D_xz03", "pose", 1, 1);
	SetSceneItem("D_xz03", "frame", 140);

	SetSceneItem("D_xz04", "pose", 1, 1);
	SetSceneItem("D_xz04", "frame", 120);

	SetSceneItem("D_xz05", "pose", 1, 1);
	SetSceneItem("D_xz05", "frame", 100);

frame ʱ D_xz01 180 D_xz02 160 ʱ20 20Ƕδ֪


 9  

ȴһӣȻȫءֻʾA()
D_Azz01D_Azz01ʾD_xz01ơ





 10  øָĵط

Ȱѳĳһ
һ Ȼǳڸ
Ǹд͵
 ˲䴫͵ָ

 11 ƷӱЧ
Чáȱֻͷһ  巽
pstм


D_ta29_OnAttack(int id, int characterid, int damage)Ʒta29
{
	int state = GetSceneItem(id, "state");
	if ( state!=3 )
	{
		return 0;
	}
	Output("rotate.....");
	
	NetEvent(1);
	CreateEffect(id, "XStar"); Ʒta29ЧXStar
	CreateEffect("D_ta30", "Pos474");
	CreateEffect("D_ta31", "Pos474");
	CreateEffect("D_ta32", "Pos474");
	CreateEffect("D_ta33", "Pos474");
	CreateEffect("D_ta34", "Pos474");
	CreateEffect("D_ta35", "Pos474");
	SetSceneItem(id, "pose", 1, 0);
}   

 12   ˮЧ

des

Object D_SSWFall01
{
  Position: -325.862 978.690 35.705
  Quaternion: -1.000 0.000 0.000 0.000
  TextureAnimation: 0 0.000 0.000
  Custom:
  {
    effect="SSWFall"
  }
}



                                             ע 

ķĵ 13 9 -24

бǶȱ

  Quaternion: -0.250 -0.500 -1.000 -1.250
  Quaternion:-0.25=45[]
             -0.5 =90[]
             -1=180[]
             -1.25=225[]

-1.000 0.000 1.000 0.000
ת90
0.000 0.000 -1.000 0.000
ת180

  

ĳЩƷ ֮

޸Ĳɹ  ĳ 0 0 0  ޸

 16 

                                      綯ʾ
D_aa01_OnAttack(int id, int character, int damage)
{
        NetEvent(1);
        SetSceneItem("D_ad01", "attribute", "active", 1);
        NetEvent(0);
}

 ҪǸҪʾĶǰҪ
NetEvent(1);


NetEvent(0);

 ͬ
                                      Ʒʱ󹥻
D_ag02_OnAttack(int id, int character, int damage)
{
        if ( GetSceneItem("D_ag02", "state")==3 )
	{
         NetEvent(1); 
         CreateEffect("D_ag02", "FuTi-UP", 0);
         SetSceneItem("D_ag02", "pose", 1, 0);
         NetEvent(0); 
        }
}


  if ( GetSceneItem("D_ag02", "state")==3 )
	{
ǿض೤ʱٹ
 󲿷3 ټӺ 

    CreateEffect("D_ag02", "FuTi-UP", 0);
    ǿֵĴ
    "FuTi-UP''ֵĴ 0 ǲѭ 1ѭ
     "FuTi-UP"¡¡